The iAPX 86 family of single chip microprocessors is widely used in personal computers. Microprocessors termed the 8086, 80286, 80386 and 80486 are part of the iAPX 86 family. Microprocessors in the iAPX 86 family are commercially available from a number of vendors including Nippon Electric Corporation (NEC), Advanced Micro Devices Corporation (i.e. AMD) and Intel Corporation.
The 386 microprocessor is a relatively recent addition to the iAPX 86 family. It is generally understood in the industry that the number "386" applied to a microprocessor designates a microprocessor which has a particular type of architecture. The 386 architecture adds significant functions which were not available in the earlier members of the iAPX 86 family.
A 386 microprocessor has three modes of operation generally termed, (1) the "Virtual 8086 model", (2) the "Protected Virtual Address model" which is often referred to as the "Protected" mode, and (3) the "Real Address model" which is often referred to as the "Real" mode.
The virtual 8086 mode is a special compatibility mode that disables a significant portion of the microprocessor and allows a complex 386 microprocessor to act as if it were an 8086 microprocessor.
Protected mode allows a 386 microprocessor to run several tasks simultaneous, that is, in Protected mode a 386 can support multitasking. In order for a 386 microprocessor to operate in Protected mode, several segmentation and MMU-related tables must exist in memory.
Real mode is a simplified operating mode that can be used to establish the tables in memory required in order for a 386 to operate in Protected mode.
The general technology required to implement multitasking is well known and it has been implemented for many years on larger computer systems. Key to multitasking is the concept of memory protection and privilege hierarchy. There are many ways to implement protection schemes and there is much prior art on this subject.
The 386 has four levels of protection or privilege. When in protected mode, programs are not allowed to read or write data that has a higher level of privilege. Furthermore, some instructions can only be executed when the processor is operating in the mode with the highest level of privilege.
A 386 microprocessor includes hardware that can keep track of a large number of separate, distinct tasks. A 386 microprocessor also has hardware that can handle the mechanics of switching between tasks. Since the hardware keeps track of the tasks being performed, the operating system can direct its attention to deciding "when" to switch tasks, rather than having to handle the mechanics of determining "how" to switch between tasks.
There is a great deal of prior art that relates to multitasking and to switching states in computer systems. For example, see U.S. Pat. No. 4,907,150 (Arroyo) and the references cited therein. Two commercially available operating systems which implement multitasking on 386 type computers are "Windows/386" which is marketed by Microsoft Corporation and "OS/2" which is marketed by International Business Machines Corporation.
The present invention adds an entirely new mode of operation to a 386 microprocessor. The new mode of operation added by the present invention builds upon the multitasking and protected modes in existing 386 microprocessors; however, the present invention adds an entirely different set of capabilities to a 386 microprocessor. The multitasking mode of operation in the 386 microprocessor essentially gave the iAPX 86 family the type of multitasking that was previously available in large computer systems. The new mode of operation added by the present invention does not have a counterpart in existing large computer systems.
The present invention provides a unique mechanism for implementing special functions such as power management. Power management is particularly important in battery powered personal computers. As the battery level decreases, it is sometimes desirable to disable certain devices and to reduce the speed in other parts of the system. As the battery reaches still lower levels, it is sometimes desirable to terminate all functions except memory maintenance.
The prior art provides programming techniques which perform various power management functions in battery powered personal computers. For example, a program named "Battery Watch" is marketed by Traveling Software Corporation of Bothell, Wash. A computer with a 386 microprocessor can be programmed to perform power management tasks as one of the tasks performed in a multitasking system. However, the type of power management that can be performed by an operator controlled program is not as comprehensive power management possible with the present invention.
The present invention addresses specialized functions such as power management from a different prospective than that used by prior art systems. The present invention takes into account the fact that microprocessors are integrated into a system by a "system integrator" or "OEM manufacturer". The present invention provides a mode of operation that allows the system integrator or OEM manufacturer to build special functions into a 386 system and nevertheless maintain full compatibility to the 386 specifications.
The present invention provides a mechanism whereby the system integrator can insure that programs which perform tasks such as power management are periodically executed by a system. Furthermore, with the present invention the OEM system integrator is assured that special programs provided by the OEM manufacturer do not in any way conflict with any other programs which the user or programmer may load into the system.
The present invention provides a mechanism which can be used to reduce the power provided to system resources such as disk drives when they are not in use. Nevertheless with the present invention resources which have been disabled can be automatically started as needed without action on the part of the user or operator of the system.
With the present invention an OEM system integrator can provide a system which is both fully compatible to the iAPX 86 programming architecture and which nevertheless uses the power of the processor itself to provide added or distinguishing features.